package com.smallA.dao;

import com.smallA.po.Choice;
import com.smallA.po.ExamQuestion;
import com.smallA.po.Fill;
import com.smallA.po.ShortAnswer;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 试卷试题中间类
 * @author 27236
 */

public interface ExamQuestionMapper {
    /**
     * 通过试卷的编号查询所有试题
     * @param examId
     * @return
     */
    List<ExamQuestion> selectExamById(@Param("examId") int examId);

    /**
     *  出卷
     * @param questionList 用集合把试题编号和类型包装起来
     * @return
     */
    int insertExam(List questionList);

    /**
     * 通过选择题编号查询该题对象
     * @param id
     * @return
     */
    Choice selectChoiceById(int id);


    /**
     * 通过填空题编号查询该题对象
     * @param id
     * @return
     */
    Fill selectFillById(int id);


    /**
     * 通过简答题编号查询该题对象
     * @param id
     * @return
     */
    ShortAnswer selectShortById(int id);

    /**
     * 查询所有的选择题
     * @return
     */
    List<Choice> selectAllChoice();

    /**
     * 查询所有的填空题
     * @return
     */
    List<Fill> selectAllFill();

    /**
     * 查询所有的简答题
     * @return
     */
    List<ShortAnswer> selectAllShort();

    @Insert("insert into exam_question(question_id,question_type,exam_id,score) values(#{id},#{type},#{eid},#{scores})")
    void addQuestionInExam(@Param("eid") Integer eid, @Param("id") Integer id, @Param("type") Integer type, @Param("scores")Float scores);
}
